home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / scope / 151-175 / scopedisk172 / amygen / introduc.bas < prev    next >
BASIC Source File  |  1995-03-19  |  15KB  |  391 lines

  1. 100 REM INTRODUC Program.
  2. 110 REM Documentation.  Introduction.
  3. 120 REM Copyright (c) 1983 - 1987 by: Melvin O. Duke.
  4. ' Ported to the Amiga in March 1988 by Nathan Barber
  5. ' Adaptions for Amiga graphics (c) 1988 by Nathan Barber
  6. 130 DATA Genealogy
  7. 140 DATA User's Manual
  8. 150 DATA -5
  9. 160 DATA 1
  10. 170 INDENT = 0
  11. 180 REM Printer Definitions
  12. 190 FORM.FEED$  = CHR$(12)
  13. 200 COMPR.OFF$  = CHR$(18)     : COMPR.ON$ = CHR$(15)
  14. 210 BOLD.OFF$   = CHR$(27)+"F" : BOLD.ON$ = CHR$(27)+"E"
  15. 220 EXPAND.OFF$ = CHR$(18)     : EXPAND.ON$ = CHR$(14)
  16. 230 DASHES$ = "+"+STRING$(54,45)+"+"
  17. 240 TRIM.LINE$ = "(Trim-line)"
  18. 300 REM Program begins here
  19. 310 READ TITLE$, DOC.NAME$, PAGE.NO, LINE.NO
  20. 320 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 :ELSE TAB.POS = 13
  21. 330 GOSUB 920  :REM'For trim line and heading space
  22. 340 FOR I = 1 TO 6 : LPRINT : NEXT I
  23. 350 LPRINT BOLD.ON$;     :REM'Set Emphasized mode
  24. 360 LPRINT EXPAND.ON$;   :REM'Set Expanded Print
  25. 370 LPRINT TAB(TAB.POS-1);TITLE$
  26. 380 LPRINT EXPAND.OFF$;  :REM'Return to normal
  27. 390 LPRINT BOLD.OFF$;    :REM'Return to normal
  28. 400 FOR I = 1 TO 3 : LPRINT : NEXT I
  29. 410 LPRINT BOLD.ON$;     :REM'Set Emphasized mode
  30. 420 LPRINT TAB(TAB.POS+12);"ON DISPLAY"
  31. 430 LPRINT BOLD.OFF$;    :REM'Return to normal
  32. 440 LPRINT : LPRINT : LPRINT
  33. 450 LPRINT TAB(TAB.POS+11);"Version 5.0"
  34. 460 FOR I = 1 TO 11 : LPRINT : NEXT I
  35. 470 LPRINT TAB(TAB.POS+10); DOC.NAME$
  36. 480 LINE.NO = LINE.NO + 27
  37. 490 :REM'
  38. 500 READ REPLY$
  39. 510 REM First, change tildes to quotes
  40. 520 FOR Q = 1 TO LEN(REPLY$)
  41. 530  IF MID$(REPLY$,Q,1)="~"THEN MID$(REPLY$,Q,1)=CHR$(34)
  42. 540 NEXT Q
  43. 550 IF LEFT$(REPLY$,1) = "." THEN GOSUB 1270: GOTO 500
  44. 560 IF LINE.NO > 44 THEN GOSUB 1030
  45. 570 REM Print the line if not a command
  46. 580 LPRINT TAB(TAB.POS);REPLY$
  47. 590 LINE.NO = LINE.NO + 1
  48. 600 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 :ELSE TAB.POS = 13
  49. 610 GOTO 500
  50. 620 REM Data for the Copyright Page
  51. 630 DATA ".pa"
  52. 640 DATA " "
  53. 750 DATA ".vt 12"
  54. 760 DATA "Users are encouraged to copy and share"
  55. 770 DATA "the programs with others."
  56. 780 DATA ".vt 5"
  57. 790 DATA "If you are using these programs, you are"
  58. 800 DATA "expected to become a Registered User,"
  59. 810 DATA "by making a contribution to the author"
  60. 815 DATA "of the programs ($45.00 suggested)."
  61. 820 DATA ".sp"
  62. 830 DATA "Melvin O. Duke"
  63. 840 DATA "P. O. Box 20836"
  64. 850 DATA "San Jose, CA  95160"
  65. 860 DATA ".vt 4"
  66. 870 DATA "Copyright (c) 1983 through 1987, by:"
  67. 880 DATA "Melvin O. Duke."
  68. 890 DATA ".sp"
  69. 900 DATA "All rights reserved."
  70. 910 :REM'
  71. 920 REM Top of each page routine
  72. 930 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 :ELSE TAB.POS = 13
  73. 940 LPRINT
  74. 950 LPRINT TAB(30); TRIM.LINE$
  75. 960 LPRINT DASHES$ :REM'Dashes
  76. 970 FOR I = 1 TO 6
  77. 980  LPRINT
  78. 990 NEXT I
  79. 1000 LINE.NO = LINE.NO + 6
  80. 1010 RETURN
  81. 1020 :REM'
  82. 1030 REM Bottom of each page Routine
  83. 1040 IF PAGE.NO < 1 THEN LPRINT : LPRINT : LPRINT : GOTO 1160
  84. 1050 LPRINT TAB(TAB.POS); STRING$(40,45)  :REM'on line 46
  85. 1060 LPRINT TAB(TAB.POS+3); TITLE$+" ON DISPLAY.  Version 5.0" :REM'on line 47
  86. 1070 IF PAGE.NO MOD 2 = 1 THEN 1110
  87. 1080 LPRINT TAB(TAB.POS);"Page";PAGE.NO;
  88. 1090 LPRINT TAB(TAB.POS+27);"User's Manual"
  89. 1100 GOTO 1160
  90. 1110 LPRINT TAB(TAB.POS); "User's Manual";
  91. 1120 IF PAGE.NO < 10 THEN DELTA = 34
  92. 1130 IF PAGE.NO >  9 THEN DELTA = 33
  93. 1140 IF PAGE.NO > 99 THEN DELTA = 32
  94. 1150 LPRINT TAB(TAB.POS+DELTA); "Page"; PAGE.NO  :REM'on line 48
  95. 1160 LPRINT : LPRINT : LPRINT
  96. 1170 LPRINT DASHES$ :REM'dashes after 51
  97. 1180 LPRINT TAB(30); TRIM.LINE$
  98. 1190 LPRINT FORM.FEED$;
  99. 1200 PAGE.NO = PAGE.NO + 1
  100. 1210 LINE.NO = 1
  101. 1220 IF REPLY$ = ".eof" THEN 1240  :REM'Bypass after last page
  102. 1230 GOSUB 920  :REM'For top of next page
  103. 1240 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 :ELSE TAB.POS = 13
  104. 1250 RETURN
  105. 1260 :REM'
  106. 1270 REM Command Processor
  107. 1280 IF LEFT$(REPLY$,3) = ".h1" THEN 1390
  108. 1290 IF LEFT$(REPLY$,3) = ".h2" THEN 1550
  109. 1300 IF LEFT$(REPLY$,3) = ".h3" THEN 1660
  110. 1310 IF LEFT$(REPLY$,3) = ".sp" THEN 1770
  111. 1320 IF LEFT$(REPLY$,4) = ".eof" THEN 1820
  112. 1330 IF LEFT$(REPLY$,3) = ".pa" THEN 1860
  113. 1340 IF LEFT$(REPLY$,3) = ".pn" THEN PAGE.NO = VAL(RIGHT$(REPLY$,LEN(REPLY$)-3)) : RETURN
  114. 1350 IF LEFT$(REPLY$,3) = ".vt" THEN 1930
  115. 1360 IF LEFT$(REPLY$,3) = ".pk" THEN 2040
  116. 1370 IF LEFT$(REPLY$,3) = ".in" THEN 2170
  117. 1380 STOP
  118. 1390 REM Head 1 Processor
  119. 1400 FOR I = LINE.NO TO 44
  120. 1410  LPRINT
  121. 1420 NEXT I
  122. 1430 GOSUB 1030  :REM'Bottom of page Routine
  123. 1440 IF PAGE.NO MOD 2 = 0 THEN GOSUB 1860  :REM'For h1 on Odd pages
  124. 1450 LPRINT BOLD.ON$;     :REM'Set emphasized print
  125. 1460 LPRINT EXPAND.ON$;   :REM'Set expanded print
  126. 1470 IF PAGE.NO MOD 2 = 0 THEN ADJUST = -2 :ELSE ADJUST = -5
  127. 1480 LPRINT TAB(TAB.POS+ADJUST); RIGHT$(REPLY$,LEN(REPLY$)-4)
  128. 1490 LPRINT EXPAND.OFF$;  :REM'Return to normal
  129. 1500 LPRINT BOLD.OFF$;    :REM'Return to non-bold
  130. 1510 LINE.NO = LINE.NO+1
  131. 1520 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 :ELSE TAB.POS = 13
  132. 1530 RETURN
  133. 1540 :REM'
  134. 1550 REM Head 2 Processor
  135. 1560 IF LINE.NO = 7 THEN 1580 :REM'skip spacing if at top of page
  136. 1570 IF LINE.NO > 43 THEN GOSUB 1860 :ELSE LPRINT:LPRINT:LINE.NO = LINE.NO+2
  137. 1580 LPRINT BOLD.ON$;  :REM'Set emphasized print
  138. 1590 LPRINT TAB(TAB.POS+1); RIGHT$(REPLY$,LEN(REPLY$)-4)
  139. 1600 LPRINT BOLD.OFF$; :REM'Return to normal
  140. 1610 LPRINT
  141. 1620 LINE.NO = LINE.NO + 2
  142. 1630 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 :ELSE TAB.POS = 13
  143. 1640 RETURN
  144. 1650 :REM'
  145. 1660 REM Head 3 Processor
  146. 1670 IF LINE.NO = 7 THEN 1690 :REM'skip spacing if at top of page
  147. 1680 IF LINE.NO > 43 THEN GOSUB 1860 :ELSE LPRINT:LPRINT:LINE.NO = LINE.NO+2
  148. 1690 LPRINT BOLD.ON$;  :REM'Set emphasized print
  149. 1700 LPRINT TAB(TAB.POS+1); RIGHT$(REPLY$,LEN(REPLY$)-4)
  150. 1710 LPRINT BOLD.OFF$; :REM'Return to normal
  151. 1720 LPRINT
  152. 1730 LINE.NO = LINE.NO + 2
  153. 1740 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 :ELSE TAB.POS = 13
  154. 1750 RETURN
  155. 1760 :REM'
  156. 1770 REM Single Space Processor
  157. 1780 IF LINE.NO = 7 THEN 1800
  158. 1790 IF LINE.NO > 44 THEN GOSUB 1860 :ELSE LPRINT : LINE.NO = LINE.NO + 1
  159. 1800 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 :ELSE TAB.POS = 13
  160. 1810 RETURN
  161. 1820 REM End of File Processor
  162. 1830 GOSUB 1860 :REM'Bottom of Page
  163. 1850 GOTO 4920
  164. 1860 REM Page Eject Processor
  165. 1870 FOR I = LINE.NO TO 44
  166. 1880  LPRINT
  167. 1890  LINE.NO = LINE.NO + 1
  168. 1900 NEXT I
  169. 1910 GOSUB 1030  :REM'Bottom of Page Processing
  170. 1920 RETURN
  171. 1930 REM Vertical Tab Processor
  172. 1940 IF LINE.NO = 7 THEN 2030
  173. 1950 IF LINE.NO > 44 THEN GOSUB 1030  :REM'End of page
  174. 1960 QTY = VAL(RIGHT$(REPLY$,LEN(REPLY$)-3))
  175. 1970 FOR I = 1 TO QTY
  176. 1980  LPRINT
  177. 1990  LINE.NO = LINE.NO + 1
  178. 2000  IF LINE.NO > 44 THEN I = QTY
  179. 2010 NEXT I
  180. 2020 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 :ELSE TAB.POS = 13
  181. 2030 RETURN
  182. 2040 REM Pack Processor
  183. 2050 IF LINE.NO > 44 THEN GOSUB 1030
  184. 2060 IF TAB.POS = 8 THEN ADJUST = 4
  185. 2070 IF TAB.POS = 13 THEN ADJUST = 7
  186. 2080 TAB.POS = TAB.POS + ADJUST + INDENT
  187. 2090 WIDTH "lpt1:", 132 :REM'set condensed width
  188. 2100 LPRINT COMPR.ON$;  :REM'Packed printing
  189. 2110 LPRINT TAB(TAB.POS); RIGHT$(REPLY$,LEN(REPLY$)-3)
  190. 2120 LPRINT COMPR.OFF$; :REM'Return to normal
  191. 2130 WIDTH "lpt1:", 80  :REM'return to normal
  192. 2140 LINE.NO = LINE.NO + 1
  193. 2150 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 :ELSE TAB.POS = 13
  194. 2160 RETURN
  195. 2170 REM Indent Processor
  196. 2180 INDENT = VAL(RIGHT$(REPLY$,LEN(REPLY$)-3))
  197. 2190 RETURN
  198. 3000 DATA ".h1 INTRODUCTION"
  199. 3010 DATA ".pn 1"
  200. 3020 DATA ".h2 OVERVIEW"
  201. 3030 DATA "The Genealogy ON DISPLAY programs pro-"
  202. 3040 DATA "vide the user with the capability to"
  203. 3050 DATA "create and maintain data files which"
  204. 3060 DATA "contain information about his or her"
  205. 3070 DATA "ancestors and relatives, to interro-"
  206. 3080 DATA "gate the contents of the files, and to"
  207. 3090 DATA "obtain printouts of pedigree charts,"
  208. 3100 DATA "family group sheets, and descendents"
  209. 3110 DATA "charts in standard formats, using the"
  210. 3120 DATA "information from those files."
  211. 3130 DATA ".sp"
  212. 3140 DATA "Other than the total size of the files,"
  213. 3150 DATA "there is no practical limit to the"
  214. 3160 DATA "number of generations contained in the"
  215. 3170 DATA "files, or capable of being displayed or"
  216. 3180 DATA "printed."
  217. 3190 DATA ".h2 CAPABILITIES"
  218. 3200 DATA "Following are the capabilities of the"
  219. 3210 DATA "the group of programs known as the"
  220. 3220 DATA "Genealogy ON DISPLAY programs."
  221. 3230 DATA ".pa"
  222. 3240 DATA ".h3 Display the Genealogy."
  223. 3250 DATA "The program 'display' is one of the"
  224. 3260 DATA "four principal programs in the Genealogy"
  225. 3270 DATA "ON DISPLAY set of programs.  (Note: All"
  226. 3280 DATA "of the other programs supplement these"
  227. 3290 DATA "four principal programs.)"
  228. 3300 DATA ".sp"
  229. 3310 DATA "By using the 'display' program, a user"
  230. 3320 DATA "may display personal information, pedi-"
  231. 3330 DATA "grees, and family group information for"
  232. 3340 DATA "any person whose records are in the data"
  233. 3350 DATA "files."
  234. 3360 DATA ".h2 Print Pedigree Charts (Family Trees)"
  235. 3370 DATA "The program 'pedigree' is the second of"
  236. 3380 DATA "the four principal programs in the"
  237. 3390 DATA "Genealogy ON DISPLAY set of programs."
  238. 3400 DATA ".sp"
  239. 3410 DATA "By using this program, a user may obtain"
  240. 3420 DATA "a printout of a pedigree chart (family"
  241. 3430 DATA "tree) for any person whose records are"
  242. 3440 DATA "in the data files."
  243. 3450 DATA ".pa"
  244. 3460 DATA ".h2 Print Family Group Sheets"
  245. 3470 DATA "The program 'family' is the third of the"
  246. 3480 DATA "four principal programs in the Genealogy"
  247. 3490 DATA "ON DISPLAY set of programs."
  248. 3500 DATA ".sp
  249. 3510 DATA "By using this program, a user may obtain"
  250. 3520 DATA "a printout of a family group sheet for"
  251. 3530 DATA "any person whose records are in the data"
  252. 3540 DATA "files."
  253. 3550 DATA ".h2 Produce Descendents Charts"
  254. 3560 DATA "The program 'descend' is the fourth of"
  255. 3570 DATA "the four principal programs in the"
  256. 3580 DATA "Genealogy ON DISPLAY set of programs."
  257. 3590 DATA ".sp
  258. 3600 DATA "By using this program, a user may dis-"
  259. 3610 DATA "play (and optionally obtain a printout)"
  260. 3620 DATA "of the descendants of any person whose"
  261. 3630 DATA "records are in the data files."
  262. 3640 DATA ".h3 Format the Data Files."
  263. 3650 DATA "Three programs, the 'creatper', the"
  264. 3660 DATA "'creatmar', and the 'creatord' programs,"
  265. 3670 DATA "provide formatting of the records in the"
  266. 3680 DATA "'persfile', the 'marrfile', and the"
  267. 3690 DATA "'ordfile' respectively."
  268. 3700 DATA ".pa"
  269. 3710 DATA ".h3 Update the Data Files."
  270. 3720 DATA "Three programs, the 'updatper',  the"
  271. 3730 DATA "'updatmar', and the 'updatord' programs,"
  272. 3740 DATA "permit update of the records in the"
  273. 3750 DATA "'persfile', the 'marrfile', and the"
  274. 3760 DATA "'ordfile' respectively."
  275. 3770 DATA ".h3 Prepare the Indexes."
  276. 3780 DATA "Two programs, the 'indexpc' and the"
  277. 3790 DATA "'indexmar' programs, prepare the"
  278. 3800 DATA "indexes 'pcindex' and 'mindex' respec-"
  279. 3810 DATA "tively."
  280. 3820 DATA ".sp"
  281. 3830 DATA "Note:  These two indexes are essential"
  282. 3840 DATA "to the 'display', 'pedigree', 'family',"
  283. 3850 DATA "and 'descend' programs, as they provide"
  284. 3860 DATA "all of the linkages between persons,"
  285. 3870 DATA "ancestors, and families."
  286. 3880 DATA ".h3 List the Records in the Files."
  287. 3890 DATA "Two programs, the 'listper' and the"
  288. 3900 DATA "'listmar' programs, provide listings"
  289. 3910 DATA "of the records in the 'persfile' and"
  290. 3920 DATA "'marrfile', respectively.  These are"
  291. 3930 DATA "one-line summary listings of the"
  292. 3940 DATA "records in the files."
  293. 3950 DATA ".pa"
  294. 3960 DATA ".h3 Printing the Contents of the Files."
  295. 3970 DATA "Two programs, the 'printper', and the"
  296. 3980 DATA "'printmar' programs, provide for print-"
  297. 3990 DATA "ing individual records or for complete"
  298. 4000 DATA "printouts of the files.  The 'printper"
  299. 4010 DATA "program provides a combined printout"
  300. 4020 DATA "of the 'persfile' and the 'ordfile'."
  301. 4030 DATA "The 'printmar' program provides a"
  302. 4040 DATA "printout of the 'marrfile'."
  303. 4050 DATA ".h3 Alphabetical Lists."
  304. 4060 DATA "Two programs, the 'alphaper', and the"
  305. 4070 DATA "'alphamar' programs, provide alphabetical"
  306. 4080 DATA "listings of the persons in the Persons"
  307. 4090 DATA "File, and marriages in the Marriages"
  308. 4100 DATA "File, respectively.  Note:  These two"
  309. 4110 DATA "lists are very helpful in permitting the"
  310. 4120 DATA "user to locate records of persons and of"
  311. 4130 DATA "marriages."
  312. 4140 DATA ".h3 Parent/Child Index List"
  313. 4150 DATA "One program, the 'listpci' program,"
  314. 4160 DATA "provides a list of all persons who are"
  315. 4170 DATA "parents, together with the children of"
  316. 4180 DATA "those persons."
  317. 4190 DATA ".pa"
  318. 4200 DATA ".h2 BENEFITS/ADVANTAGES"
  319. 4210 DATA "The Genealogy ON DISPLAY programs pro-"
  320. 4220 DATA "vide an organized, cohesive set of"
  321. 4230 DATA "programs, to permit a user to create and"
  322. 4240 DATA "maintain that person's genealogical"
  323. 4250 DATA "information."
  324. 4260 DATA ".sp"
  325. 4270 DATA "One major advantage of this technique is"
  326. 4280 DATA "that the user only enters information a"
  327. 4290 DATA "single time, in a single place.  Hence,"
  328. 4300 DATA "there is never any discrepancy between"
  329. 4310 DATA "separate reportings of the data."
  330. 4320 DATA ".sp"
  331. 4330 DATA "The programs use the relationships be-"
  332. 4340 DATA "tween persons for extracting and report-"
  333. 4350 DATA "ing the data in meaningful formats."
  334. 4360 DATA ".sp"
  335. 4370 DATA "Since most genealogical information is"
  336. 4380 DATA "not complete, whenever new information"
  337. 4390 DATA "is obtained, the user may readily add"
  338. 4400 DATA "that new information (or change any"
  339. 4410 DATA "erroneous old information) as the user"
  340. 4420 DATA "desires."
  341. 4430 DATA ".h2 RESULTS"
  342. 4440 DATA "The final results are a well-organized"
  343. 4450 DATA "set of data files and indices, which"
  344. 4460 DATA "permit a user to obtain related infor-"
  345. 4470 DATA "mation in formats which are meaningful"
  346. 4480 DATA "to that user."
  347. 4490 DATA ".pa"
  348. 4500 DATA "Pedigree Charts, Family Group Sheets and"
  349. 4510 DATA "Descendents Charts, as well as Personal"
  350. 4520 DATA "information about each individual are"
  351. 4530 DATA "are available upon demand, either on the"
  352. 4540 DATA "printer or on the display."
  353. 4550 DATA ".h2 REQUIREMENTS"
  354. 4560 DATA ".h3 Hardware Requirements."
  355. 4570 DATA ".sp"
  356. 4580 DATA "IBM PCjr, PC, or PC/XT, with:"
  357. 4590 DATA ".sp"
  358. 4600 DATA "  One Double-sided Diskette Drive."
  359. 4610 DATA ".sp"
  360. 4620 DATA "  Either the IBM Graphics Printer, the"
  361. 4630 DATA "  IBM Matrix Printer (or equivalents)."
  362. 4640 DATA ".sp"
  363. 4650 DATA "    Note: The IBM Graphics Printer"
  364. 4660 DATA "    and the IBM Matrix Printer"
  365. 4670 DATA "    provide for condensed printing"
  366. 4680 DATA "    of Pedigree Charts and Family"
  367. 4690 DATA "    Group Sheets."
  368. 4700 DATA ".sp"
  369. 4710 DATA "    For full-sized printouts of the"
  370. 4720 DATA "    Pedigree Charts and Family"
  371. 4730 DATA "    Group Sheets, a 132 character"
  372. 4740 DATA "    (10 char/in) printer is required."
  373. 4750 DATA ".sp"
  374. 4760 DATA "  At least 96K of Memory (128 K is"
  375. 4770 DATA "  recommended)."
  376. 4780 DATA ".sp"
  377. 4790 DATA "  Either the IBM Color Display,"
  378. 4800 DATA "  the IBM Monochrome Display (or"
  379. 4810 DATA "  equivalents)."
  380. 4820 DATA ".pa"
  381. 4830 DATA ".h3 Software Requirements."
  382. 4840 DATA ".sp"
  383. 4850 DATA "IBM PC-DOS."
  384. 4860 DATA "  Version 2.1  (or Version 2.0 on"
  385. 4870 DATA "    the IBM PC or the IBM PC/XT).
  386. 4880 DATA ".sp"
  387. 4890 DATA "BASIC"
  388. 4900 DATA "  (on Cartridge or Diskette)."
  389. 4910 DATA ".eof"
  390. 4920 END
  391.